package com.ym.medical.domain.param;


import com.ym.common.constant.BeanCovert;
import com.ym.medical.domain.entity.AppBannerEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;


@Data
@Builder
@ApiModel(value = "banner管理查询")
public class AppBannerParam extends BeanCovert<AppBannerEntity> {
	@ApiModelProperty("主键")
	@NotNull(message = "主键不能为空!", groups = {Update.class})
	private Long id;

	@ApiModelProperty("标题")
	@NotNull(message = "标题不能为空!", groups = {Add.class})
	@Size(max = 200, message = "标题长度必须在{min}和{max}之间", groups = {Add.class, Update.class})
	private String title;

	@ApiModelProperty("应用渠道")
	@NotNull(message = "应用渠道不能为空!", groups = {Add.class})
	@Size(max = 2, message = "应用渠道长度必须在{min}和{max}之间", groups = {Add.class, Update.class})
	private String applyItem;

	@ApiModelProperty("banner图片")
	@NotNull(message = "banner图片不能为空!", groups = {Add.class})
	@Size(max = 200, message = "banner图片长度必须在{min}和{max}之间", groups = {Add.class, Update.class})
	private String bannerImg;

	@ApiModelProperty("展示位置")
	@NotNull(message = "展示位置不能为空!", groups = {Add.class})
	@Size(max = 2, message = "展示位置长度必须在{min}和{max}之间", groups = {Add.class, Update.class})
	private String showLocation;

	@ApiModelProperty("来源")
	@NotNull(message = "来源不能为空!", groups = {Add.class})
	@Size(max = 2, message = "来源长度必须在{min}和{max}之间", groups = {Add.class, Update.class})
	private String source;

	@ApiModelProperty("第三方名称")
	@Size(max = 200, message = "第三方名称长度必须在{min}和{max}之间", groups = {Add.class, Update.class})
	private String partThreeName;

	@ApiModelProperty("简介")
	@Size(max = 500, message = "简介长度必须在{min}和{max}之间", groups = {Add.class, Update.class})
	private String simple;

	@ApiModelProperty("审核状态01未审核02审核通过03审核不通过")
	@NotNull(message = "审核状态01未审核02审核通过03审核不通过不能为空!", groups = {Add.class})
	@Size(max = 2, message = "审核状态01未审核02审核通过03审核不通过长度必须在{min}和{max}之间", groups = {Add.class, Update.class})
	private String auditStatus;

	@ApiModelProperty("发布时间")
	private Date publishTime;

	@ApiModelProperty("阅读量")
	@Max(value = 2147483647, message = "阅读量最大值不能高于{value}", groups = {Add.class, Update.class})
	@Min(value = -2147483648, message = "阅读量最小值不能低于{value}", groups = {Add.class, Update.class})
	private Integer readNum;

	@ApiModelProperty("转发量")
	@Max(value = 2147483647, message = "转发量最大值不能高于{value}", groups = {Add.class, Update.class})
	@Min(value = -2147483648, message = "转发量最小值不能低于{value}", groups = {Add.class, Update.class})
	private Integer forwardNum;

	@ApiModelProperty("状态 00已发布01未发布")
	@NotNull(message = "状态 00已发布01未发布不能为空!", groups = {Add.class})
	@Size(max = 2, message = "状态 00已发布01未发布长度必须在{min}和{max}之间", groups = {Add.class, Update.class})
	private String publishStatus;

	@ApiModelProperty("创建时间")
	@NotNull(message = "创建时间不能为空!", groups = {Add.class})
	private Date createTime;

	@ApiModelProperty("创建人")
	@NotNull(message = "创建人不能为空!", groups = {Add.class})
	private Long createPerson;

	@ApiModelProperty("删除标志")
	@NotNull(message = "删除标志不能为空!", groups = {Add.class})
	@Size(max = 2, message = "删除标志长度必须在{min}和{max}之间", groups = {Add.class, Update.class})
	private String deleted;

	@ApiModelProperty("序号")
	@Max(value = 2147483647, message = "序号最大值不能高于{value}", groups = {Add.class, Update.class})
	@Min(value = -2147483648, message = "序号最小值不能低于{value}", groups = {Add.class, Update.class})
	private Integer sortNum;

	@ApiModelProperty("是否外链")
	@NotNull(message = "是否外链不能为空!", groups = {Add.class})
	@Size(max = 2, message = "是否外链长度必须在{min}和{max}之间", groups = {Add.class, Update.class})
	private String open;

	@ApiModelProperty("跳转链接")
	@Size(max = 500, message = "跳转链接长度必须在{min}和{max}之间", groups = {Add.class, Update.class})
	private String targetUrl;

	@ApiModelProperty("内容")
	@Size(max = 65535, message = "内容长度必须在{min}和{max}之间", groups = {Add.class, Update.class})
	private String content;

	@ApiModelProperty("应用渠道")
	private String applyItemName;

	@ApiModelProperty("展示位置")
	private String showLocationName;

	@ApiModelProperty("来源")
	private String sourceName;

	@ApiModelProperty("审核状态01未审核02审核通过03审核不通过")
	private String auditStatusName;

	@ApiModelProperty("状态 00已发布01未发布")
	private String publishStatusName;

	@ApiModelProperty("删除标志")
	private String deletedName;

	@ApiModelProperty("是否外链")
	private String openName;

	public interface Add {

	}

	public interface Update {

	}

}